// pages/index/index.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
    query:{},
    page:1,
    count:10,
    total:0,
    goodslist:[],
    isloading:false//是否加载数据
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
   
    // console.log(options);
    // options 这个参数就代表传递过来的数据，要想获取就弄个变量接收
    this.setData({
      query:options
    })
    this.getgoods()
  },
  getgoods(cd){
    //每次加载数据是改变 isloading 的值，一会要靠这个做判断是否需要加载
    this.setData({
      isloading:true
    })
    wx.showLoading({
      title: '加载中',
    })
    wx.request({
      //点击不同的九宫格导航加载的数据也不一样，用id在网址中做出对应的区分，得到不同的数据
      //不是点击事件，而是，navigator跳转到页面直接触发加载函数
      url:`https://www.escook.cn/categories/${this.data.query.id}/shops`,
      method:'GET',
      data:{
        _page:this.data.page,//多少页
        _limit:this.data.count//多少条数据
      },
      success:(res)=>{
        console.log(res);
        this.setData({
          //数据太多不能一次性加载完，下拉到差不多底部再继续加载，
          //所以这里使用展开运算符把之前加载好的数据和正在加载的数据合并，相当于+=
          goodslist:[...this.data.goodslist,...res.data],
          total:res.header['X-Total-Count']-0
        })
      },
      complete:(res)=>{
        //结束加载中提示
        wx.hideLoading()
        this.setData({
          isloading:false
        })
        //短路函数:只要碰到了假值(false)，就会短路，并返回该假值， 只要短路，不会继续执行后面的表达式。
        cd && cd()
      }
    })
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {
    wx.setNavigationBarTitle({
      //不同九宫格里面的标题不同
      title: this.data.query.title
    })
  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {
    //下拉刷新，在顶部时生效,把数据重新加载成最开始的样子
    this.setData({
      page:1,
      total:0,
      goodslist:[]
    })
    //阻止下拉刷新
    this.getgoods(()=>{
      wx.stopPullDownRefresh()
    })
  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {
    //用页码数乘以单次加载量，大于总数就表示加载完成，就return
    if(this.data.page*this.data.count>=this.data.total)
    return wx.showToast({
      title:'到底了...',
      icon:'none'
    })
    //page+1 表示下一页，每次页码数加一就多调用一遍加载数据函数
    this.setData({
      page:this.data.page+1
    })
    this.getgoods()
  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})